package tiposFueraDeLaAPI;

import interfaces.Criterio;
import java.util.Comparator;
import java.util.List;
import java.util.Set;

//@inv: !(a.equals(b)==false) || getClave(a).equals(getClave(b))==false, i.e., 
//"dos individuos distintos del conjunto tienen dos claves distintas"

public interface ConjuntoIndexado <T,K> extends Set<T> {

	T getIndividuo(K clave);
 Set<T> getIndividuos( );    
 Set<T> getIndividuos(Set<K> claves); 
 Set<T> getIndividuos(Criterio<? super T> propiedad);
 List<T> getIndividuosOrdenados(Criterio<? super T> propiedad, Comparator<T> ordenAux); 

}
